﻿using proyectoFinalPDS.Presentacion.DTO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using proyectoFinalPDS.Persistencia;
using proyectoFinalPDS.Aplicacion;
using System.Text.RegularExpressions;

namespace proyectoFinalPDS.Presentacion
{
    public partial class NotaTarea : Form
    {
     
        private List<Alumno> listaAlumnos;
        private int idUsuario;
        private int idCurso;
        
        private Tarea tarea;
        public NotaTarea(int idusuario,int idcurso, Tarea tarea)
        {
            InitializeComponent();
            tilde.Hide();
            idUsuario = idusuario;
            idCurso = idcurso;
            this.tarea = tarea;
            ControladorCursos controlador = new ControladorCursos();
            listaAlumnos = controlador.getAlumnos(idCurso);
            if (listaAlumnos.Count == 0)
                listitaAlumnos.Items.Add("No hay alumnos inscriptos");
            else
                foreach (Alumno a in listaAlumnos)
                {
                    String cadenita = a.Usuario.apelliido.Trim() + ", " + a.Usuario.nombre.Trim();
                    this.listitaAlumnos.Items.Add(cadenita);
                }       
        
             
        }

     

        private void Form8_Load(object sender, EventArgs e)
        {

        }

        private void ListaAlumnos_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.textNota.Text = "";
            this.textComentario.Text = "";
            ControladorCursos controlador = new ControladorCursos();
            listaAlumnos = controlador.getAlumnos(idCurso);

                foreach(Resultado_Tarea r in this.listaAlumnos[listitaAlumnos.SelectedIndex].Resultado_Tarea)
                {
                    if (r.idTarea == tarea.idTarea)
                    {
                        this.textNota.Text = r.calificacion.ToString();
                        this.textComentario.Text = r.comentarioProfesor;
                    }
                }
        }
    
        private void Guardar_Click(object sender, EventArgs e)
        {
            Regex regex = new Regex(@"^[0-9]+$");
            Cronometro.Interval = 1000;

            Cronometro.Enabled = true;
            tilde.Show();
            Resultado_Tarea resultado = new Resultado_Tarea();          
            if (regex.IsMatch(textNota.Text)) 
            {
                ControladorAlumno calumno = new ControladorAlumno();
                try
                {
                    resultado.idAlumno = this.listaAlumnos[listitaAlumnos.SelectedIndex].idAlumno;
                    resultado.calificacion = Convert.ToInt32(textNota.Text);
                    resultado.comentarioProfesor = this.textComentario.Text;
                    resultado.idTarea = tarea.idTarea;
                    calumno.setNotaTarea(resultado);

                    //MessageBox.Show("Nota asignada.", "Exitos", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }
                catch
                {
                    MessageBox.Show("Debe seleccionar un alumno.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            else
                MessageBox.Show("Escriba una nota válida entre 0 y 100","Error",MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        private void NotaTarea_FormClosing(object sender, FormClosingEventArgs e)
        {
            EditarCurso ed = new EditarCurso(idUsuario, idCurso);
            ed.Show();
            this.Dispose();
        }

        private void Cancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Cronometro_Tick(object sender, EventArgs e)
        {
            Cronometro.Enabled = false;
      
            tilde.Hide();
        }
    }
}
